package com.deanlib.cabinet.service.sync;

import android.accounts.Account;
import android.content.ContentProvider;
import android.content.ContentResolver;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;

import androidx.annotation.Nullable;

import com.deanlib.cabinet.R;

/**
 * 这是对一个内容提供者数据变化的监听，当前，我们用的是虚拟内容提供者，所以这个方法无效
 * 由于我们的应用做的是多媒体资源同步功能，而系统存储多媒体使用的就是 内容提供者，所以可以将这个内容观察者结合使用
 * 后续可以考虑开发， 现阶段主要还是让应用跑起来
 * Created by Dean on 2022/9/1
 */
public class TableObserver extends ContentObserver {

    String authority;
    Account account;
    /**
     * Creates a content observer.
     *
     * @param handler The handler to run {@link #onChange} on, or null if none.
     */
    public TableObserver(Handler handler, Account account, String authority) {
        super(handler);
        this.account = account;
        this.authority = authority;
    }

    @Override
    public void onChange(boolean selfChange) {
        super.onChange(selfChange);
    }

    @Override
    public void onChange(boolean selfChange, @Nullable Uri uri) {
        super.onChange(selfChange, uri);
        ContentResolver.requestSync(account, authority, null);
    }
}
